There are various program tools used in the generation of large scale integrated circuits that use libraries of re-useable elements, examples are layout tools with memory libraries. In the case of these tools one still has to hand-code how the individual elements are connected together. A new design using the same set of libraries elements but a different interconnect hierarchy or architecture requires the designer to hand code this interconnect logic afresh.